package com.example.petshopping.ui.login;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.petshopping.R;
import com.example.petshopping.ui.main.MainActivity;
import com.example.petshopping.utils.TokenManager;
import com.google.android.material.button.MaterialButton;

/**
 * 登录页面
 */
public class LoginActivity extends AppCompatActivity {

    private CheckBox cbAgree;
    private MaterialButton btnWechatLogin;
    private MaterialButton btnPhoneLogin;
    private TextView tvUserAgreement;
    private TextView tvPrivacyPolicy;
    private ProgressBar progressBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        // 已经移除自动跳转的检查
        // 直接显示登录界面

        // 初始化控件
        initViews();
        
        // 设置点击事件
        setupClickListeners();
    }

    private void initViews() {
        cbAgree = findViewById(R.id.cbAgree);
        btnWechatLogin = findViewById(R.id.btnWechatLogin);
        btnPhoneLogin = findViewById(R.id.btnPhoneLogin);
        tvUserAgreement = findViewById(R.id.tvUserAgreement);
        tvPrivacyPolicy = findViewById(R.id.tvPrivacyPolicy);
        progressBar = findViewById(R.id.progressBar);
        
        // 设置微信登录按钮初始状态为禁用
        btnWechatLogin.setEnabled(false);
    }

    private void setupClickListeners() {
        // 勾选框状态变化监听
        cbAgree.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // 根据勾选状态设置微信登录按钮是否可用
                btnWechatLogin.setEnabled(isChecked);
            }
        });
        
        // 微信登录点击事件
        btnWechatLogin.setOnClickListener(v -> {
            if (!cbAgree.isChecked()) {
                Toast.makeText(LoginActivity.this, R.string.agree_first, Toast.LENGTH_SHORT).show();
                return;
            }
            
            // 显示加载中
            showLoading(true);
            Toast.makeText(LoginActivity.this, R.string.wechat_login_processing, Toast.LENGTH_SHORT).show();
            
            // 这里应该调用微信SDK进行登录
            // 由于是演示，我们直接模拟登录成功
            simulateSuccessfulLogin();
        });

        // 手机号登录点击事件
        btnPhoneLogin.setOnClickListener(v -> {
            if (!cbAgree.isChecked()) {
                Toast.makeText(LoginActivity.this, R.string.agree_first, Toast.LENGTH_SHORT).show();
                return;
            }
            
            // 跳转到手机号登录页面
            Intent intent = new Intent(LoginActivity.this, PhoneLoginActivity.class);
            startActivity(intent);
            overridePendingTransition(0,0);
        });

        // 用户协议点击事件
        tvUserAgreement.setOnClickListener(v -> {
            Toast.makeText(LoginActivity.this, R.string.open_user_agreement, Toast.LENGTH_SHORT).show();
            // 在实际应用中，这里应该打开用户协议网页
        });

        // 隐私政策点击事件
        tvPrivacyPolicy.setOnClickListener(v -> {
            Toast.makeText(LoginActivity.this, R.string.open_privacy_policy, Toast.LENGTH_SHORT).show();
            // 在实际应用中，这里应该打开隐私政策网页
        });
    }

    /**
     * 模拟登录成功
     */
    private void simulateSuccessfulLogin() {
        // 延迟1秒，模拟网络请求
        btnWechatLogin.postDelayed(() -> {
            // 保存登录状态
            TokenManager.saveToken(LoginActivity.this, "mock_token_123456");
            TokenManager.saveUserId(LoginActivity.this, 10086L);
            
            // 隐藏加载中
            showLoading(false);
            
            // 跳转到主页
            startMainActivity();
        }, 1000);
    }

    /**
     * 显示或隐藏加载进度
     */
    private void showLoading(boolean show) {
        progressBar.setVisibility(show ? View.VISIBLE : View.GONE);
        btnWechatLogin.setEnabled(!show && cbAgree.isChecked());
        btnPhoneLogin.setEnabled(!show);
    }

    /**
     * 跳转到主页
     */
    private void startMainActivity() {
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }
}